/*******************************************************************************
 * Copyright (c) 2006 CEA List.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *     CEA List - initial API and implementation
 *******************************************************************************/
package com.cea.papyrus.core.editpart;

import org.eclipse.uml2.uml.Element;
import org.eclipse.uml2.uml.ElementImport;

import com.cea.papyrus.core.editor.ModelManager;

/**
 * 
 * 
 * @author Remi SCHNEKENBURGER
 * @author Patrick TESSIER
 */
public interface IUMLElementEditPart<T extends Element> extends IUMLObjectEditPart {
	
	/**
	 * Return the {@link Element} represented by this EditPart.
	 * 
	 * @return Element the element represented by this EditPart or null.
	 */
	public T getUmlElement(); 
	
	/**
	 * the edit part may be associated to a n element import.
	 * In this case, getUmlElement return the importedElement
	 * 
	 * @return true if the linked element is an element import.
	 */
	public boolean isElementImport();
	
	/**
	 * Return the element import  this edit part is link to an element import.
	 * 
	 * @return the element import  or null
	 */
	public ElementImport getElementImport();
	
	/**
	 * 
	 * 
	 * @return the model manager of this edit part
	 */
	public ModelManager getModelManager();
}
